package com.simple.gateway.center.application;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.simple.gateway.center.domian.application.dto.ApplicationInterfaceDTO;
import com.simple.gateway.center.domian.application.dto.ApplicationInterfaceMethodDTO;
import com.simple.gateway.center.domian.application.dto.ApplicationSystemDTO;
import com.simple.gateway.center.domian.application.param.ApplicationInterfaceMethodParam;
import com.simple.gateway.center.domian.application.param.ApplicationInterfaceParam;
import com.simple.gateway.center.domian.application.param.ApplicationSystemParam;
import com.simple.gateway.center.web.param.ApplicationCompositeParam;

import java.util.List;

/**
 * 项目: simple-gateway-core
 *
 * 功能描述: 接口注册服务
 *
 * @author: WuChengXing
 *
 * @create: 2023-08-07 16:58
 **/
public interface IApplicationManageService {

    /**
     * 注册应用
     * @param param
     */
    void registerApplication(ApplicationSystemParam param);

    /**
     * 注册接口
     * @param param
     */
    void registerApplicationInterface(ApplicationInterfaceParam param);

    /**
     * 注册接口方法
     * @param param
     */
    void registerApplicationInterfaceMethod(ApplicationInterfaceMethodParam param);

    /**
     * 查询系统信息
     * @param param
     * @return
     */
    Page<ApplicationSystemDTO> pageApplicationSystem(ApplicationCompositeParam param);

    /**
     * 查询系统接口信息
     * @param param
     * @return
     */
    Page<ApplicationInterfaceDTO> pageApplicationInterface(ApplicationCompositeParam param);

    /**
     * 查询系统方法信息
     * @param param
     * @return
     */
    Page<ApplicationInterfaceMethodDTO> pageApplicationMethod(ApplicationCompositeParam param);

    /**
     * 查询所有接口方法信息
     *
     * @param param
     * @return
     */
    List<ApplicationInterfaceMethodDTO> listApplicationMethod(ApplicationCompositeParam param);
}
